/*
	Copyright (C) 2010 Salil Bhagurkar

	This file is part of k3

	k3 is free software: you can redistribute it and/or modify
	it under the terms of the GNU Lesser General Public License as published by
	the Free Software Foundation, either version 3 of the License, or
	(at your option) any later version.

	k3 is distributed in the hope that it will be useful,
	but WITHOUT ANY WARRANTY; without even the implied warranty of
	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
	GNU Lesser General Public License for more details.

	You should have received a copy of the GNU Lesser General Public License
	along with k3.  If not, see <http://www.gnu.org/licenses/>.
*/

#ifndef _SHARED_H_
#define _SHARED_H_

/*Central include file*/

//Architecture include files
/*I/O functions provided by the architecture*/
#include <arch/portio.h>
#include <arch/memio.h>
//This file includes the functions provided by the architecture.*/
#include <arch/shared.h>


/*Standard library routines*/
#include <stdlib/string.h>
#include <stdlib/printf.h>
#include <stdlib/cmdline.h>
#include <stdlib/ctype.h>

/*Common stuff*/
#include <types.h>
#include <error.h>
#include <compiler.h>
#include <list.h>
#include <time.h>

/*Buffer management*/
#include <buffer.h>

/*Debug printing and validators*/
#include <dprint.h>

/*Memory allocator*/
#include <malloc.h>

/*Miscellaneous stuff*/
#include <stuff.h>

#include <fs.h>

#include <sched.h>
#include <driver.h>
#include <module.h>


/*Universal macros*/

#define MIN(a, b) (((a)<(b))?(a):(b))
#define MAX(a, b) (((a)>(b))?(a):(b))

#define NEW(a) (a *)malloc_get(sizeof(a))
#define NEWARR(a,n) (a *)malloc_get(n * sizeof(a))


#endif
